ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಮಾಡ್ಯೂಲ್ ಗ್ರಾಫ್ ಆಪ್ಟಿಮೈಸೇಶನ್: ಡಿಪೆಂಡೆನ್ಸಿ ಗ್ರಾಫ್ ಸರಳೀಕರಣ | MLOG | MLOG
            document.addEventListener("DOMContentLoaded", function() {
 var lazyloadImages = document.querySelectorAll("img.lazy");

 function lazyload () {
 lazyloadImages.forEach(function(img) {
 if (img.offsetTop < (window.innerHeight + window.pageYOffset)) {
 img.src = img.dataset.src;
 img.classList.remove("lazy");
 }
 });
 if(lazyloadImages.length === 0) {
 document.removeEventListener("scroll", lazyload);
 window.removeEventListener("resize", lazyload);
 window.removeEventListener("orientationChange", lazyload);
 }
 }

 document.addEventListener("scroll", lazyload);
 window.addEventListener("resize", lazyload);
 window.addEventListener("orientationChange", lazyload);
 });
            

ಕ್ರಿಯಾತ್ಮಕ ಒಳನೋಟ: ಪರದೆಯ ಮೇಲೆ ತಕ್ಷಣವೇ ಕಾಣಿಸದ ಚಿತ್ರಗಳು, ವೀಡಿಯೊಗಳು ಮತ್ತು ಇತರ ಸಂಪನ್ಮೂಲಗಳಿಗಾಗಿ ಲೇಜಿ ಲೋಡಿಂಗ್ ಅನ್ನು ಅಳವಡಿಸಿ. `lozad.js` ನಂತಹ ಲೈಬ್ರರಿಗಳನ್ನು ಅಥವಾ ಬ್ರೌಸರ್-ನೇಟಿವ್ ಲೇಜಿ-ಲೋಡಿಂಗ್ ಗುಣಲಕ್ಷಣಗಳನ್ನು ಬಳಸುವುದನ್ನು ಪರಿಗಣಿಸಿ.

6. ಟ್ರೀ ಶೇಕಿಂಗ್ ಮತ್ತು ಡೆಡ್ ಕೋಡ್ ಎಲಿಮಿನೇಷನ್

ಟ್ರೀ ಶೇಕಿಂಗ್ ಎನ್ನುವುದು ಬಿಲ್ಡ್ ಪ್ರಕ್ರಿಯೆಯ ಸಮಯದಲ್ಲಿ ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್‌ನಿಂದ ಬಳಸದ ಕೋಡ್ ಅನ್ನು ತೆಗೆದುಹಾಕುವ ತಂತ್ರವಾಗಿದೆ. ಇದು ಬಂಡಲ್ ಗಾತ್ರವನ್ನು ಗಮನಾರ್ಹವಾಗಿ ಕಡಿಮೆ ಮಾಡಬಹುದು, ವಿಶೇಷವಾಗಿ ನಿಮಗೆ ಅಗತ್ಯವಿಲ್ಲದ ಬಹಳಷ್ಟು ಕೋಡ್ ಅನ್ನು ಒಳಗೊಂಡಿರುವ ಲೈಬ್ರರಿಗಳನ್ನು ನೀವು ಬಳಸುತ್ತಿದ್ದರೆ.

ಉದಾಹರಣೆ:

ನೀವು 100 ಫಂಕ್ಷನ್‌ಗಳನ್ನು ಹೊಂದಿರುವ ಯುಟಿಲಿಟಿ ಲೈಬ್ರರಿಯನ್ನು ಬಳಸುತ್ತಿದ್ದೀರಿ ಎಂದು ಭಾವಿಸೋಣ, ಆದರೆ ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್‌ನಲ್ಲಿ ನೀವು ಅವುಗಳಲ್ಲಿ 5 ಅನ್ನು ಮಾತ್ರ ಬಳಸುತ್ತೀರಿ. ಟ್ರೀ ಶೇಕಿಂಗ್ ಇಲ್ಲದೆ, ಸಂಪೂರ್ಣ ಲೈಬ್ರರಿಯನ್ನು ನಿಮ್ಮ ಬಂಡಲ್‌ನಲ್ಲಿ ಸೇರಿಸಲಾಗುತ್ತದೆ. ಟ್ರೀ ಶೇಕಿಂಗ್‌ನೊಂದಿಗೆ, ನೀವು ಬಳಸುವ 5 ಫಂಕ್ಷನ್‌ಗಳನ್ನು ಮಾತ್ರ ಸೇರಿಸಲಾಗುತ್ತದೆ.

ಕಾನ್ಫಿಗರೇಶನ್:

ನಿಮ್ಮ ಬಂಡ್ಲರ್ ಟ್ರೀ ಶೇಕಿಂಗ್ ಮಾಡಲು ಕಾನ್ಫಿಗರ್ ಮಾಡಲಾಗಿದೆಯೇ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ. ವೆಬ್‌ಪ್ಯಾಕ್‌ನಲ್ಲಿ, ಪ್ರೊಡಕ್ಷನ್ ಮೋಡ್ ಬಳಸುವಾಗ ಇದನ್ನು ಸಾಮಾನ್ಯವಾಗಿ ಡಿಫಾಲ್ಟ್ ಆಗಿ ಸಕ್ರಿಯಗೊಳಿಸಲಾಗುತ್ತದೆ. ರೋಲಪ್‌ನಲ್ಲಿ, ನೀವು `@rollup/plugin-commonjs` ಪ್ಲಗಿನ್ ಅನ್ನು ಬಳಸಬೇಕಾಗಬಹುದು.

ಕ್ರಿಯಾತ್ಮಕ ಒಳನೋಟ: ಟ್ರೀ ಶೇಕಿಂಗ್ ಮಾಡಲು ನಿಮ್ಮ ಬಂಡ್ಲರ್ ಅನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಿ ಮತ್ತು ನಿಮ್ಮ ಕೋಡ್ ಟ್ರೀ ಶೇಕಿಂಗ್‌ಗೆ ಹೊಂದಿಕೆಯಾಗುವ ರೀತಿಯಲ್ಲಿ ಬರೆಯಲಾಗಿದೆಯೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ (ಉದಾ., ES ಮಾಡ್ಯೂಲ್‌ಗಳನ್ನು ಬಳಸುವುದು).

7. ಡಿಪೆಂಡೆನ್ಸಿಗಳನ್ನು ಕಡಿಮೆ ಮಾಡುವುದು

ನಿಮ್ಮ ಪ್ರಾಜೆಕ್ಟ್‌ನಲ್ಲಿನ ಡಿಪೆಂಡೆನ್ಸಿಗಳ ಸಂಖ್ಯೆಯು ಮಾಡ್ಯೂಲ್ ಗ್ರಾಫ್‌ನ ಸಂಕೀರ್ಣತೆಯ ಮೇಲೆ ನೇರವಾಗಿ ಪರಿಣಾಮ ಬೀರಬಹುದು. ಪ್ರತಿ ಡಿಪೆಂಡೆನ್ಸಿಯು ಗ್ರಾಫ್‌ಗೆ ಸೇರಿಸುತ್ತದೆ, ಸಂಭಾವ್ಯವಾಗಿ ಬಿಲ್ಡ್ ಸಮಯ ಮತ್ತು ಬಂಡಲ್ ಗಾತ್ರಗಳನ್ನು ಹೆಚ್ಚಿಸುತ್ತದೆ. ನಿಮ್ಮ ಡಿಪೆಂಡೆನ್ಸಿಗಳನ್ನು ನಿಯಮಿತವಾಗಿ ಪರಿಶೀಲಿಸಿ ಮತ್ತು ಇನ್ನು ಮುಂದೆ ಅಗತ್ಯವಿಲ್ಲದ ಅಥವಾ ಚಿಕ್ಕ ಪರ್ಯಾಯಗಳೊಂದಿಗೆ ಬದಲಾಯಿಸಬಹುದಾದ ಯಾವುದನ್ನಾದರೂ ತೆಗೆದುಹಾಕಿ.

ಉದಾಹರಣೆ:

ಸರಳವಾದ ಕೆಲಸಕ್ಕಾಗಿ ದೊಡ್ಡ ಯುಟಿಲಿಟಿ ಲೈಬ್ರರಿಯನ್ನು ಬಳಸುವ ಬದಲು, ನಿಮ್ಮ ಸ್ವಂತ ಫಂಕ್ಷನ್ ಬರೆಯುವುದನ್ನು ಅಥವಾ ಚಿಕ್ಕ, ಹೆಚ್ಚು ವಿಶೇಷವಾದ ಲೈಬ್ರರಿಯನ್ನು ಬಳಸುವುದನ್ನು ಪರಿಗಣಿಸಿ.

ಕ್ರಿಯಾತ್ಮಕ ಒಳನೋಟ: `npm audit` ಅಥವಾ `yarn audit` ನಂತಹ ಸಾಧನಗಳನ್ನು ಬಳಸಿ ನಿಮ್ಮ ಡಿಪೆಂಡೆನ್ಸಿಗಳನ್ನು ನಿಯಮಿತವಾಗಿ ಪರಿಶೀಲಿಸಿ ಮತ್ತು ಡಿಪೆಂಡೆನ್ಸಿಗಳ ಸಂಖ್ಯೆಯನ್ನು ಕಡಿಮೆ ಮಾಡಲು ಅಥವಾ ಅವುಗಳನ್ನು ಚಿಕ್ಕ ಪರ್ಯಾಯಗಳೊಂದಿಗೆ ಬದಲಾಯಿಸಲು ಅವಕಾಶಗಳನ್ನು ಗುರುತಿಸಿ.

8. ಬಂಡಲ್ ಗಾತ್ರ ಮತ್ತು ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ವಿಶ್ಲೇಷಿಸುವುದು

ಸುಧಾರಣೆಯ ಕ್ಷೇತ್ರಗಳನ್ನು ಗುರುತಿಸಲು ನಿಮ್ಮ ಬಂಡಲ್ ಗಾತ್ರ ಮತ್ತು ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ನಿಯಮಿತವಾಗಿ ವಿಶ್ಲೇಷಿಸಿ. webpack-bundle-analyzer ಮತ್ತು Lighthouse ನಂತಹ ಸಾಧನಗಳು ದೊಡ್ಡ ಮಾಡ್ಯೂಲ್‌ಗಳು, ಬಳಸದ ಕೋಡ್ ಮತ್ತು ಕಾರ್ಯಕ್ಷಮತೆಯ ಅಡಚಣೆಗಳನ್ನು ಗುರುತಿಸಲು ನಿಮಗೆ ಸಹಾಯ ಮಾಡುತ್ತವೆ.

ಉದಾಹರಣೆ (webpack-bundle-analyzer):

ನಿಮ್ಮ ವೆಬ್‌ಪ್ಯಾಕ್ ಕಾನ್ಫಿಗರೇಶನ್‌ಗೆ `webpack-bundle-analyzer` ಪ್ಲಗಿನ್ ಅನ್ನು ಸೇರಿಸಿ.

            const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;

module.exports = {
 // ... other webpack configuration
 plugins: [
 new BundleAnalyzerPlugin()
 ]
};

            

ನೀವು ನಿಮ್ಮ ಬಿಲ್ಡ್ ಅನ್ನು ರನ್ ಮಾಡಿದಾಗ, ಪ್ಲಗಿನ್ ನಿಮ್ಮ ಬಂಡಲ್‌ನಲ್ಲಿನ ಪ್ರತಿಯೊಂದು ಮಾಡ್ಯೂಲ್‌ನ ಗಾತ್ರವನ್ನು ತೋರಿಸುವ ಸಂವಾದಾತ್ಮಕ ಟ್ರೀಮ್ಯಾಪ್ ಅನ್ನು ರಚಿಸುತ್ತದೆ.

ಕ್ರಿಯಾತ್ಮಕ ಒಳನೋಟ: ನಿಮ್ಮ ಬಿಲ್ಡ್ ಪ್ರಕ್ರಿಯೆಯಲ್ಲಿ ಬಂಡಲ್ ವಿಶ್ಲೇಷಣಾ ಸಾಧನಗಳನ್ನು ಸಂಯೋಜಿಸಿ ಮತ್ತು ಆಪ್ಟಿಮೈಸೇಶನ್ ಕ್ಷೇತ್ರಗಳನ್ನು ಗುರುತಿಸಲು ಫಲಿತಾಂಶಗಳನ್ನು ನಿಯಮಿತವಾಗಿ ಪರಿಶೀಲಿಸಿ.

9. ಮಾಡ್ಯೂಲ್ ಫೆಡರೇಶನ್

ಮಾಡ್ಯೂಲ್ ಫೆಡರೇಶನ್, ವೆಬ್‌ಪ್ಯಾಕ್ 5 ರಲ್ಲಿನ ಒಂದು ವೈಶಿಷ್ಟ್ಯ, ಇದು ರನ್‌ಟೈಮ್‌ನಲ್ಲಿ ವಿಭಿನ್ನ ಅಪ್ಲಿಕೇಶನ್‌ಗಳ ನಡುವೆ ಕೋಡ್ ಅನ್ನು ಹಂಚಿಕೊಳ್ಳಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಇದು ಮೈಕ್ರೋಫ್ರಂಟ್‌ಎಂಡ್‌ಗಳನ್ನು ನಿರ್ಮಿಸಲು ಅಥವಾ ವಿಭಿನ್ನ ಪ್ರಾಜೆಕ್ಟ್‌ಗಳ ನಡುವೆ ಸಾಮಾನ್ಯ ಕಾಂಪೊನೆಂಟ್‌ಗಳನ್ನು ಹಂಚಿಕೊಳ್ಳಲು ಉಪಯುಕ್ತವಾಗಬಹುದು. ಮಾಡ್ಯೂಲ್ ಫೆಡರೇಶನ್ ಕೋಡ್‌ನ ನಕಲು ಮಾಡುವುದನ್ನು ತಪ್ಪಿಸುವ ಮೂಲಕ ಬಂಡಲ್ ಗಾತ್ರಗಳನ್ನು ಕಡಿಮೆ ಮಾಡಲು ಮತ್ತು ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಸುಧಾರಿಸಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ.

ಉದಾಹರಣೆ (ಮೂಲಭೂತ ಮಾಡ್ಯೂಲ್ ಫೆಡರೇಶನ್ ಸೆಟಪ್):

ಅಪ್ಲಿಕೇಶನ್ A (ಹೋಸ್ಟ್):

            // webpack.config.js
const ModuleFederationPlugin = require("webpack/lib/container/ModuleFederationPlugin");

module.exports = {
 // ... other webpack configuration
 plugins: [
 new ModuleFederationPlugin({
 name: "appA",
 remotes: {
 appB: "appB@http://localhost:3001/remoteEntry.js",
 },
 shared: ["react", "react-dom"]
 })
 ]
};

            

ಅಪ್ಲಿಕೇಶನ್ B (ರಿಮೋಟ್):

            // webpack.config.js
const ModuleFederationPlugin = require("webpack/lib/container/ModuleFederationPlugin");

module.exports = {
 // ... other webpack configuration
 plugins: [
 new ModuleFederationPlugin({
 name: "appB",
 exposes: {
 './MyComponent': './src/MyComponent',
 },
 shared: ["react", "react-dom"]
 })
 ]
};

            

ಕ್ರಿಯಾತ್ಮಕ ಒಳನೋಟ: ಹಂಚಿಕೆಯ ಕೋಡ್ ಹೊಂದಿರುವ ದೊಡ್ಡ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಿಗೆ ಅಥವಾ ಮೈಕ್ರೋಫ್ರಂಟ್‌ಎಂಡ್‌ಗಳನ್ನು ನಿರ್ಮಿಸಲು ಮಾಡ್ಯೂಲ್ ಫೆಡರೇಶನ್ ಬಳಸುವುದನ್ನು ಪರಿಗಣಿಸಿ.

ನಿರ್ದಿಷ್ಟ ಬಂಡ್ಲರ್ ಪರಿಗಣನೆಗಳು

ವಿಭಿನ್ನ ಬಂಡ್ಲರ್‌ಗಳು ಮಾಡ್ಯೂಲ್ ಗ್ರಾಫ್ ಆಪ್ಟಿಮೈಸೇಶನ್‌ಗೆ ಸಂಬಂಧಿಸಿದಂತೆ ವಿಭಿನ್ನ ಸಾಮರ್ಥ್ಯ ಮತ್ತು ದೌರ್ಬಲ್ಯಗಳನ್ನು ಹೊಂದಿವೆ. ಜನಪ್ರಿಯ ಬಂಡ್ಲರ್‌ಗಳಿಗಾಗಿ ಕೆಲವು ನಿರ್ದಿಷ್ಟ ಪರಿಗಣನೆಗಳು ಇಲ್ಲಿವೆ:

ವೆಬ್‌ಪ್ಯಾಕ್

ರೋಲಪ್

ಪಾರ್ಸೆಲ್

ಜಾಗತಿಕ ದೃಷ್ಟಿಕೋನ: ವಿಭಿನ್ನ ಸಂದರ್ಭಗಳಿಗೆ ಆಪ್ಟಿಮೈಸೇಶನ್‌ಗಳನ್ನು ಅಳವಡಿಸುವುದು

ಮಾಡ್ಯೂಲ್ ಗ್ರಾಫ್‌ಗಳನ್ನು ಆಪ್ಟಿಮೈಸ್ ಮಾಡುವಾಗ, ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಬಳಸಲಾಗುವ ಜಾಗತಿಕ ಸಂದರ್ಭವನ್ನು ಪರಿಗಣಿಸುವುದು ಮುಖ್ಯ. ನೆಟ್‌ವರ್ಕ್ ಪರಿಸ್ಥಿತಿಗಳು, ಸಾಧನದ ಸಾಮರ್ಥ್ಯಗಳು ಮತ್ತು ಬಳಕೆದಾರರ ಜನಸಂಖ್ಯಾಶಾಸ್ತ್ರದಂತಹ ಅಂಶಗಳು ವಿಭಿನ್ನ ಆಪ್ಟಿಮೈಸೇಶನ್ ತಂತ್ರಗಳ ಪರಿಣಾಮಕಾರಿತ್ವದ ಮೇಲೆ ಪ್ರಭಾವ ಬೀರಬಹುದು.

ತೀರ್ಮಾನ

ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಮಾಡ್ಯೂಲ್ ಗ್ರಾಫ್ ಅನ್ನು ಆಪ್ಟಿಮೈಸ್ ಮಾಡುವುದು ಫ್ರಂಟ್-ಎಂಡ್ ಅಭಿವೃದ್ಧಿಯ ಒಂದು ನಿರ್ಣಾಯಕ ಅಂಶವಾಗಿದೆ. ಡಿಪೆಂಡೆನ್ಸಿಗಳನ್ನು ಸರಳೀಕರಿಸುವುದು, ಸರ್ಕ್ಯುಲರ್ ಡಿಪೆಂಡೆನ್ಸಿಗಳನ್ನು ತೆಗೆದುಹಾಕುವುದು ಮತ್ತು ಕೋಡ್ ಸ್ಪ್ಲಿಟಿಂಗ್ ಅನ್ನು ಅಳವಡಿಸುವ ಮೂಲಕ, ನೀವು ಬಿಲ್ಡ್ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಗಮನಾರ್ಹವಾಗಿ ಸುಧಾರಿಸಬಹುದು, ಬಂಡಲ್ ಗಾತ್ರವನ್ನು ಕಡಿಮೆ ಮಾಡಬಹುದು ಮತ್ತು ಅಪ್ಲಿಕೇಶನ್ ಲೋಡಿಂಗ್ ಸಮಯವನ್ನು ಹೆಚ್ಚಿಸಬಹುದು. ಸುಧಾರಣೆಗಾಗಿ ಕ್ಷೇತ್ರಗಳನ್ನು ಗುರುತಿಸಲು ನಿಮ್ಮ ಬಂಡಲ್ ಗಾತ್ರ ಮತ್ತು ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ನಿಯಮಿತವಾಗಿ ವಿಶ್ಲೇಷಿಸಿ ಮತ್ತು ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ ಬಳಸಲಾಗುವ ಜಾಗತಿಕ ಸಂದರ್ಭಕ್ಕೆ ನಿಮ್ಮ ಆಪ್ಟಿಮೈಸೇಶನ್ ತಂತ್ರಗಳನ್ನು ಅಳವಡಿಸಿಕೊಳ್ಳಿ. ಆಪ್ಟಿಮೈಸೇಶನ್ ಒಂದು ನಿರಂತರ ಪ್ರಕ್ರಿಯೆಯಾಗಿದೆ ಮತ್ತು ಅತ್ಯುತ್ತಮ ಫಲಿತಾಂಶಗಳನ್ನು ಸಾಧಿಸಲು ನಿರಂತರ ಮೇಲ್ವಿಚಾರಣೆ ಮತ್ತು ಪರಿಷ್ಕರಣೆ ಅತ್ಯಗತ್ಯ ಎಂಬುದನ್ನು ನೆನಪಿಡಿ.

ಈ ತಂತ್ರಗಳನ್ನು ಸ್ಥಿರವಾಗಿ ಅನ್ವಯಿಸುವ ಮೂಲಕ, ವಿಶ್ವಾದ್ಯಂತದ ಡೆವಲಪರ್‌ಗಳು ವೇಗವಾದ, ಹೆಚ್ಚು ಸಮರ್ಥ ಮತ್ತು ಹೆಚ್ಚು ಬಳಕೆದಾರ ಸ್ನೇಹಿ ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ರಚಿಸಬಹುದು.